package com.yimu.lib.ymhttp;

import com.yimu.lib.http.HttpUtils;
import com.yimu.lib.http.net.HttpCallback;
import com.yimu.lib.http.net.NetFuntion;
import com.yimu.lib.util.DESUtil;
import com.yimu.lib.util.MyLogger;
import com.yimu.lib.util.TextUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * 描述：TODO
 * 创建者：  Churck
 * 创建时间：2017/4/27 16:25
 * 修改者： Churck
 * 修改时间：2017/4/27 16:25
 * 版 本：v1.0
 */

public class Irequest {
    private String appkey;

    /**
     * 不能带空创建
     */
    private Irequest(){
    }

    /**
     * 带秘钥创建
     * @param appkey 秘钥
     */

    public Irequest(String appkey) {
        this.appkey = appkey;
    }

    /**
     * 设置秘钥
     * @param appkey
     */

    public void setAppkey(String appkey) {
        this.appkey = appkey;
    }

    /**
     * 网络请求
     * @param url 请求地址
     * @param sid 请求接口
     * @param data 请求数据
     * @param callback 回调
     */
    public   void httpReques(String url,String sid,String data, HttpCallback callback) {
        if (TextUtils.isEmpty(appkey)){
            return ;
        }
        Map<String, String> dataMap= toDataMap(sid, data);
        HttpUtils .getInstance().requestStringhttp(url, dataMap, "POST",callback);
    }

    /**
     * DES加密
     * @param: 要加密的字符串
     * @return: 加密后的字符串
     * @throws Exception
     */
    private  String DESencrypt(String str){
        String encrypt = null;
        try {
            encrypt = DESUtil.encrypt(str, appkey);
        } catch (Exception e) {
            MyLogger.e("加密异常");
            e.printStackTrace();
        }
        return encrypt;
    }

    /**
     * 合成数据的map对象
     * @param： sid参数/接口名
     * @param:data参数/接口需要的参数转换的josn字符串
     * @return 合成的map对象
     */
    private Map<String, String> toDataMap(String sid, String data){
        Map<String, String> hm = new HashMap<>();
        if (sid != null) {
            hm.put("sid", DESencrypt(sid));
        }
        if (data != null) {
            hm.put("data", DESencrypt(data));
        }

        return hm;

    }
}
